home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Gamer (Italian) 30
/
PC Gamer IT CD 30 1-2.iso
/
MOTS
/
GAMEDATA
/
RESOURCE
/
JKMRES.GOO
/
cog_exp_cpel.cog
< prev
next >
Wrap
Text File
|
1998-02-25
|
3KB
|
140 lines
# Jedi Knight Missions Cog Script
#
# CPEL.COG
#
# EXPLOSION SCRIPT - Carbonite Pellet
#
# [RF]
#
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
symbols
message created
template goob=concrifle local
template gunk=+carbchunks local
sound outSound=cpelletexplo.wav local
thing pellet local
thing frozen local
vector frozenpos local
vector pelletpos local
int pelletdist local
flex freezeradius=10.0 local
flex maxfreezetime=10.0 local
flex freezetime local
end
# ========================================================================================
code
created:
// Print("Pellet COG Running!");
pellet = GetSenderRef();
PlaySoundThing(outSound, pellet, 1.0, -1, -1, 0);
// CreateThing(goob, pellet);
CreateThingNR(gunk, pellet);
pelletpos = GetThingPos(pellet);
// Do we need to freeze ourselves?
frozen = GetLocalPlayerThing();
frozenpos = GetThingPos(frozen);
pelletdist = VectorDist(frozenpos, pelletpos) * 10;
if (pelletdist < freezeradius)
// if (!(GetActorFlags(frozen) & 0x100))
if (HasLOS(frozen, pellet))
{
freezetime = (maxfreezetime * (freezeradius - pelletdist)) / freezeradius;
// Print("Froze myself!");
// SkillTarget(frozen, pellet, 1035, freezetime);
SendMessageEx(GetThingClassCog(frozen), skill, 1035, freezetime, 0, 0);
// SendMessage(GetThingClassCog(frozen), user7);
}
// If we are a client, stop here.
if (IsMulti())
if (!IsServer())
{
DestroyThing(pellet);
Return;
}
// print("Looking...");
// Check for other actor targets.
frozen = FirstThingInView(pellet, 180, freezeradius, 0x004);
while (frozen != -1)
{
// print("Found something...");
// Don't mess with inanimate objects.
if (!(GetActorFlags(frozen) & 0x100))
// // Don't mess with other players.
// if (!(GetThingFlags(frozen) & 0x400))
// Double check LOS.
{
if (HasLOS(frozen, pellet))
{
frozenpos = GetThingPos(frozen);
pelletdist = VectorDist(frozenpos, pelletpos) * 10;
freezetime = (maxfreezetime * (freezeradius - pelletdist)) / freezeradius;
// print("Freezing Someone!");
// printflex(freezeTime);
if (freezetime > 0) // Sanity check.
{
// Give the thing a chance to react.
if (SendMessageEx(GetThingClassCog(frozen), skill, 1035, freezetime, frozen, 0) != 17)
{
// Before going into the default handler (in WEAP_CARBGUN_M.COG)
SendMessageEx(GetInvCog(GetLocalPlayerThing(), 125), user0, 1, freezetime, frozen, 0);
}
}
// if(GetThingType(frozen) == 10) // OTHER PLAYER
// SkillTarget(frozen, pellet, 1035, freezetime);
// else
}
// else
//{
//print("No LOS!");
//}
}
// else
// {
// print("Thing Flags: ");
// printint(GetThingFlags(frozen));
// }
// else
// {
// print("Actor Flags: ");
// printint(GetActorFlags(frozen));
// }
frozen = NextThingInView();
}
// Buh bye.
DestroyThing(pellet);
Return;
end